package org.deng.learn.designpattern.simplefactory;

/**
 * @author DengLibin
 * @Description 简单工厂模式
 * 简单工厂模式不能说是一个设计模式，说它是一种编程习惯可能更恰当些。因为它至少不是Gof23种设计模式之一。但它在实际的编程中经常被用到
 *
 * 模式定义
 * 简单工厂模式(Simple Factory Pattern)：又称为静态工厂方法(Static Factory Method)模式，它属于类创建型模式。在简单工厂模式中，可以根据参数的不同返回不同类的实例。
 * 简单工厂模式专门定义一个类来负责创建其他类的实例，被创建的实例通常都具有共同的父类。
 *
 * 模式结构
 * 简单工厂模式包含如下角色：
 * Factory：工厂角色
 * Product：抽象产品角色
 * ConcreteProduct：具体产品角色
 *
 *     简单工厂模式最大的优点在于实现对象的创建和对象的使用分离，将对象的创建交给专门的工厂类负责，但是其最大的缺点在于工厂类不够灵活，
 * 增加新的具体产品需要修改工厂类的判断逻辑代码，而且产品较多时，工厂方法代码将会非常复杂。
 * 简单工厂模式适用情况包括：工厂类负责创建的对象比较少；客户端只知道传入工厂类的参数，对于如何创建对象不关心
 * @Date 2019/2/12 0012 13:48
 */
public class Main {

    public static  void main(String[] args){
        Bruit redBruit = BruitFactory.createBruit(Color.RED);
        redBruit.showColor();

        Bruit yellowBruit = BruitFactory.createBruit(Color.YELLOW);
        yellowBruit.showColor();

    }


}
